home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 July / EnigmA AMIGA RUN 20 (1997)(G.R. Edizioni)(IT)[!][issue 1997-07 & 08][EAR-CD IV].iso / earkit / kaffe / kaffe-0_9_0-gcalign-diff.gz / kaffe-0.9.0-gcalign-diff
Text File  |  1997-06-05  |  3KB  |  97 lines

  1. diff -bcrN gcbug_kaffe-0.9.0/config/config.h.in kaffe-0.9.0/config/config.h.in
  2. *** gcbug_kaffe-0.9.0/config/config.h.in    Mon May 12 19:16:38 1997
  3. --- kaffe-0.9.0/config/config.h.in    Sat May 24 19:04:14 1997
  4. ***************
  5. *** 259,264 ****
  6. --- 259,267 ----
  7.   /* How big are pointers */
  8.   #undef    SIZEOF_VOIDP
  9.   
  10. + /* How are pointers aligned */
  11. + #undef    ALIGNMENTOF_VOIDP
  12.   /* Do we have sigcontext */
  13.   #undef    HAVE_STRUCT_SIGCONTEXT
  14.   
  15. diff -bcrN gcbug_kaffe-0.9.0/configure.in kaffe-0.9.0/configure.in
  16. *** gcbug_kaffe-0.9.0/configure.in    Mon May 12 19:16:23 1997
  17. --- kaffe-0.9.0/configure.in    Sun Jun 01 15:22:16 1997
  18. ***************
  19. *** 617,622 ****
  20. --- 617,641 ----
  21.   AC_CHECK_SIZEOF(long long,0)
  22.   AC_CHECK_SIZEOF(__int64,0)
  23.   AC_CHECK_SIZEOF(void*,0)
  24. + dnl =========================================================================
  25. + dnl Checks for alignments
  26. + dnl -------------------------------------------------------------------------
  27. + AC_CACHE_CHECK(alignment of void*, ac_cv_alignmentof_voidp,
  28. + AC_TRY_RUN([#include <stdio.h>
  29. + main() { struct { char c; void *p; } t; FILE *f;
  30. +   if ((char*) &t.c != (char*) &t)  exit (1);
  31. +   f=fopen ("conftestdata", "w");
  32. +   if (! f)                         exit (1);
  33. +   fprintf (f, "%d", ((char*) &t.p)-((char*) &t));
  34. +   fclose(f); exit (0); }],
  35. + ac_cv_alignmentof_voidp=$(<conftestdata), ac_cv_alignmentof_voidp=1,
  36. + ac_cv_alignmentof_voidp=1))
  37. + AC_DEFINE_UNQUOTED(ALIGNMENTOF_VOIDP,$ac_cv_alignmentof_voidp)
  38. + dnl -------------------------------------------------------------------------
  39.   AC_TYPE_SIGNAL
  40.   AC_TYPE_SIZE_T
  41.   AC_CHECK_TYPE(ssize_t,int)
  42. diff -bcrN gcbug_kaffe-0.9.0/kaffe/kaffevm/gc-incremental.c kaffe-0.9.0/kaffe/kaffevm/gc-incremental.c
  43. *** gcbug_kaffe-0.9.0/kaffe/kaffevm/gc-incremental.c    Tue May 27 00:04:39 1997
  44. --- kaffe-0.9.0/kaffe/kaffevm/gc-incremental.c    Mon May 26 20:31:58 1997
  45. ***************
  46. *** 13,18 ****
  47. --- 13,19 ----
  48.   #define FDBG(s)
  49.   #define FTDBG(s)
  50.   #define ADBG(s)
  51. + #define ALDBG(s)
  52.   
  53.   #include "config.h"
  54.   #include "config-std.h"
  55. ***************
  56. *** 152,167 ****
  57.   }
  58.   
  59.   void
  60. ! scanConservative(void* base, size_t size)
  61.   {
  62. !     void** mem;
  63. !     int32 i;
  64.   
  65.       gcStats.markedmem += size;
  66.   
  67. !     mem = base;
  68. !     for (i = (size / sizeof(void*)) - 1; i >= 0; i--) {
  69. !         markObject(mem[i]);
  70.       }
  71.   }
  72.   
  73. --- 153,170 ----
  74.   }
  75.   
  76.   void
  77. ! scanConservative(void *base, size_t size)
  78.   {
  79. !     int8  *mem;
  80.   
  81.       gcStats.markedmem += size;
  82.   
  83. !     mem = ((int8 *) base) + (size & -ALIGNMENTOF_VOIDP) - sizeof (void *);
  84. !     while ((void *) mem >= base) {
  85. ! ALDBG(          if (gc_heap_isobject (* (void **) mem) && ((long)mem & (sizeof(void*)-1)))
  86. !             fprintf (stderr, "<%d>", (long)mem & (sizeof(void*)-1));             )
  87. !         markObject(* (void **) mem);
  88. !         mem -= ALIGNMENTOF_VOIDP;
  89.       }
  90.   }
  91.   
  92.